The present invention is related to the field of power and resource management and more particularly with regard to a method and apparatus for determining the power and resources of each virtual machine operating within a plurality of computers or servers.
Newer server technology has incorporated large number of components into many existing servers. This technology reduces the need for an increased number of servers and their costs associated with power, cooling and real estate. The increasing power density of newer technology hardware, however, is reaching the limits of existing power and cooling supply as the number of servers or blades deployed within an existing infrastructure has been significantly increased. Power and cooling costs are also increasing because of rising and in terms of its environmental impact. In addition the thermal hot spots may be developed due to the increases in the power density of the hardware.
One of the well understood techniques for reducing energy consumption is to consolidate applications on fewer server machines. Previous work has looked at various methods of achieving the consolidation by varying the number of server machines based on the application's intensity. Server virtualization has further enabled higher degrees of consolidation by securely co-locating applications written for heterogeneous operating systems, also providing performance and resource isolation for those applications. Applications that were earlier running on individual physical servers are now run in virtual servers (virtual machines) and multiple virtual machines run on a physical machine.
Estimation of power and energy of multiple virtual machines is known in the art. For example, energy estimation may be based on the use of processor performance counters (see, for example, Energy Management for Hypervisor-Based Virtual Machines, Bellosa, et al., Annual Technical Conference, USENIX, 2007). However, many modern server systems have internal power measurement (and management) features that directly measure the power and energy consumption of the whole system and some components within the system. Typically whole system power and energy measurement is accurate and fast, with sampling done at short intervals, while lower-level component measurements are slower, requiring longer time intervals, and are less accurate. Other attempts to perform energy estimation based on thermal sensors have been attempted, but these sensors can have a relatively long time constant and generally cannot distinguish well between virtual machines that are time-division multiplexed onto the same hardware resources.
However, each of these methods fails to consider the presence of the virtual machines that are operating within the existing infrastructure or requires either a long time or an extensive amount of computer resources to determine the power usage.
Hence, there is a need for an improved method and apparatus for determining the power and energy requirements of each of the virtual machines operating within an infrastructure.